package cradleofrome;

/**
 *
 * @author Alex
 */
import java.util.HashMap;
public class Positie {

    private Spelobjecten spelobject;
    private Selector selektor;
    private int x_coordinaat;
    private int y_coordinaat;
    private HashMap<String, Positie> buren;

    /**
     * Constructor van de klasse positie
     * @param x de X coordinaat waar de positie zich bevindt op het veld
     * @param y de Y coordinaat waar de positie zich bevindt op het veld
     */
    public Positie(int x, int y){

        x_coordinaat = x;
        y_coordinaat = y;
        buren = new HashMap();
    }

    /**
     * Plaatst de selector op de positie
     * @param selector de selector object
     */
    public void setSelector(Selector selector){

        this.selektor = selector;
    }

    /**
     * Verwijderd de selector van de positie
     */
    public void removeSelector(){

        this.selektor = null;
    }

   /**
    * Haalt de X coordinaat van een positie op
    * @return de X coordinaat
    */
    public int getX(){

        return x_coordinaat;
    }

    /**
     * Haalt de Y coordinaat van een positie op
     * @return de Y coordinaat
     */
    public int getY(){

        return y_coordinaat;
    }

    /**
     * Geeft de Spelobject dat zich op de positie bevindt.
     * @return de Spelobject wat op de positie staat.
     */
    public Spelobjecten getSpelobject(){

            return spelobject;
    }
    
    /**
     * Verwijderd de huidige Spelobject van de positie
     */
    public void removeSpelobject(){

        spelobject = null;
    }

    /**
     * Plaats een Spelobject op het huidige positie
     * @param spelobject het spelobject dat geplaats wordt
     */
    public void setSpelobject(Spelobjecten spelobjekt){

        this.spelobject = spelobjekt;
    }

    /**
     * Geeft de selector terug als deze aanwezig is
     * @return de selector object
     */
    public Selector getSelector(){

       return selektor;
    }

    /**
     * Haalt de positie van buur op in de opgegeven richting
     * @return de buur in het opgegeven richting
     */
    public Positie getBuur(String richting){

        Positie buur = (Positie)buren.get(richting);

        return buur;
    }

    /**
     * Plaatst een buur bij de positie in de opgegeven richting
     * @param richting de richting van de buur
     * @param positie de positie object van de buur
     */
    public void setBuur(String richting, Positie positie){

        buren.put(richting, positie);
    }
}
